@echo off
REM 设置代码页为UTF-8以支持中文显示
chcp 65001 >nul

REM ====== 全自动测试脚本 ======
set PROJECT_ROOT=D:\phpstudy_pro\WWW\oa.laizone.com
cd /d %PROJECT_ROOT%

echo ===== 环境诊断 =====
echo 当前目录: %cd%
echo 当前用户: %USERNAME%
echo 系统信息: 
ver

echo.
echo PATH 环境变量中包含 PHP:
echo %PATH% | findstr /i "php"
if %errorlevel% equ 0 (
    echo [信息] PATH 中找到 PHP 相关路径
) else (
    echo [警告] PATH 中未找到 PHP 相关路径
)

echo.
echo ===== 环境检查 =====
echo 测试 Node.js 环境...
where node >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 未找到 Node.js，请确保已安装 Node.js 并添加到系统PATH环境变量中
    echo 当前 PATH: %PATH%
    pause
    exit /b 1
) else (
    echo [通过] Node.js 可用
)

echo 测试 npm 环境...
where npm >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 未找到 npm，请确保已安装 Node.js 并添加到系统PATH环境变量中
    pause
    exit /b 1
) else (
    echo [通过] npm 可用
)

echo.
echo ===== Node.js 和 npm 信息 =====
echo Node.js 版本:
node --version

echo npm 版本:
npm --version

echo.
echo 正在运行前端测试...
cd migration\frontend
echo 安装前端依赖...
npm install
if %errorlevel% neq 0 (
    echo 前端依赖安装失败
    pause
    exit /b %errorlevel%
)

echo 运行前端单元测试...
npm run test:ci
if %errorlevel% neq 0 (
    echo 前端测试失败
    pause
    exit /b %errorlevel%
)
echo 前端测试完成

echo.
echo 正在构建前端项目...
npm run build
if %errorlevel% neq 0 (
    echo 前端构建失败
    pause
    exit /b %errorlevel%
)
echo 前端构建完成

echo.
echo ===== 后端环境检查 =====
cd ..\backend

REM 检查 PHP
echo 测试 PHP 环境...
where php >nul 2>&1
if %errorlevel% neq 0 (
    echo 警告: 未找到 PHP，跳过后端测试
    echo 所有前端测试已完成！
    pause
    exit /b 0
) else (
    echo [通过] PHP 可用
)

REM 检查 Composer
echo 测试 Composer 环境...
where composer >nul 2>&1
if %errorlevel% neq 0 (
    echo 警告: 未找到 Composer，跳过后端测试
    echo 所有前端测试已完成！
    pause
    exit /b 0
) else (
    echo [通过] Composer 可用
)

echo.
echo ===== PHP 和 Composer 信息 =====
echo PHP 版本:
php --version

echo Composer 版本:
composer --version

echo.
echo 安装后端依赖...
composer install
if %errorlevel% neq 0 (
    echo 后端依赖安装失败
    pause
    exit /b %errorlevel%
)

if exist vendor\bin\phpunit (
    echo 运行后端测试...
    php vendor\bin\phpunit
) else (
    echo 未找到PHPUnit，请检查后端依赖安装
    pause
    exit /b 1
)
if %errorlevel% neq 0 (
    echo 后端测试失败
    pause
    exit /b %errorlevel%
)
echo 后端测试完成

echo.
echo ========== 所有测试已完成！==========
pause